Software estimation is the process of arriving at the most probable size and eventually effort that would be required to maintain/configure/test any software application or product. The input (requirements) available for the estimation drives accuracy of the estimates. This effort estimation may be used as input to derive project plans, create budgets, decide on investments, pricing processes and bidding for projects. Estimation of software assurance projects involves size, effort and schedule estimation of testing activities (e.g., system testing, integration testing, user acceptance testing) taking input as test cases/requirements etc based on its availability.
While estimating Software effort, various techniques are known for size estimation of assurance projects (both manual and test automation). Generally, size for manual testing is estimated in terms of normalized test cases (derived or predicted from size in Function Point/SLOC). Whereas, for effort estimation various crude techniques like proportion of development effort or even bottom up approach of WBS are employed, which many a times are not reliable, resulting into improper effort distribution. One of the most reliable methods of effort estimation is a risk-based method that determines objects for testing and an extent of testing depending on use of historical data along with predefined industry standards.
In addition, the limitation of all previous techniques described in prior art relating to estimation of software testing or assurance projects is that each test case that is considered for testing in order to estimate efforts in software assurance projects, can be categorized based on assigning weightage to specific parameters. Wherein such parameters may include number of steps, data, operations performed etc. In particular, the existing prior art patent application US20080092120 by Udupa et al. disclose size and effort estimation in testing applications, wherein the size of a software application testing project is determined, and person/hours required for the testing project is estimated. The US20080092120 by Udupa et al. disclose one-dimensional and person dependent categorization of each test case that is considered for testing is essentially based on assigning weightage to specific parameters such as number of steps, data, operations performed etc. Based on the weightage assigned to each of these parameters, the test cases can be allocated ‘points’ and a size in terms of test units is derived.
To ensure project/program success, increase overall product quality and improve time to market of the product, it may be imperative that the approach for estimating software test effort be multi-dimensional, person independent and as accurate as possible. In view of the above mentioned limitations of the techniques available in the prior art, there is a lack of structured and scientific methods for estimating software testing size and effort and further distributing estimated efforts among corresponding phases of the project.
There exists a need for a multi-dimensional, process oriented and person in-dependant approach wherein test cases are not only categorized based on weightage assigned to such parameters but also consider the need for categorizing test cases based on the fact that out of a finite set of test cases in a given testing project for consideration, wherein the given finite set of test cases could include to be used as it is, some would need modifications and some new test cases would need to be created.
In light of the above mentioned unreliable effort computation techniques, there exists a need for an adaptive method and system that is responsive to various variables in an application testing, such that an accurate size and effort estimation of software assurance projects and further distribution of the estimated efforts among the various life cycle phases is ensured. In addition to this, there is also a need for a method and system that minimizes inputs required for estimation, improves reusability of historical estimates, reduces turnaround time for estimation and is able to derive effort from the estimated size.